/**
 * @description sequelize 实例
 * @author 高
 */

const Sequelize = require("sequelize");
const { isProd, isTest } = require("../utils/env"); // 引入生产模式
const { MYSQL_CONF } = require("../conf/db");
const { host, user, password, database } = MYSQL_CONF;

// 写到配置文件中
const conf = {
  dialect: "mysql",
  host: host
};

// 线上环境，使用连接池
if (isProd) {

  conf.pool = {
    max: 5, // 连接池中最大的连接数量
    min: 0, // 最小
    idle: 10000 // 如果一个连接池10s内没有被使用，则释放
  };

}
if (isTest) {
  // 如果是测试模式向不打印sql语句
  conf.logging = () => { };

}

const seq = new Sequelize(database, user, password, conf);

module.exports = seq;